package com.project.system.domain.entity;

import com.project.common.domain.po.DbBase;
import lombok.Data;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @author : [chg]
 * @className : ClockRecord
 * @description : 打卡记录实体
 * @createTime : [2025/7/9 11:30]
 */
@Entity
@Data
@Table(name = "tb_employee_clock_record")
@org.hibernate.annotations.Table(appliesTo = "tb_employee_clock_record", comment = "打卡记录")
public class HrClockRecord extends DbBase {
    @Column(columnDefinition = "bigint DEFAULT NULL COMMENT '用户ID'")
    private Long userId; // 用户ID
    
    @Column(columnDefinition = "datetime DEFAULT NULL COMMENT '打卡时间'")
    private LocalDateTime clockTime; // 打卡时间

    @Column(columnDefinition = "date DEFAULT NULL COMMENT '打卡日期'")
    private LocalDate date; // 打卡日期
    
    @Column(columnDefinition = "int DEFAULT NULL COMMENT '打卡类型（1-早上班打卡,2-早上下班打卡,3-中午上班打卡,4-下午下班打卡）'")
    private Integer clockType; // 打卡类型（1-早上班打卡,2-早上下班打卡,3-中午上班打卡,4-下午下班打卡）
    
    @Column(columnDefinition = "varchar(50) DEFAULT NULL COMMENT '打卡设备'")
    private String device; // 打卡设备（"前台考勤机""手机 APP"）
    
    @Column(columnDefinition = "varchar(100) DEFAULT NULL COMMENT '打卡地点'")
    private String location; // 打卡地点
    
    @Column(columnDefinition = "int DEFAULT NULL COMMENT '是否异常（0-正常,1-异常）'")
    private Integer isAbnormal; // 是否异常（0-正常,1-异常）
    
    @Column(columnDefinition = "varchar(50) DEFAULT NULL COMMENT '异常类型'")
    private String abnormalType; // 异常类型（如"迟到""早退""漏打卡"）
}